package com.whfc.fim.dao;

import com.whfc.fim.dto.FimResultDTO;
import com.whfc.fim.entity.FimAlgResultPerson;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

/**
 * @author : qzexing
 * @version : 1.0
 * @date : 2020-09-08 18:38
 */

public interface FimAlgResultPersonMapper {
    int deleteByPrimaryKey(Integer id);

    int insert(FimAlgResultPerson record);

    int insertSelective(FimAlgResultPerson record);

    FimAlgResultPerson selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(FimAlgResultPerson record);

    int updateByPrimaryKey(FimAlgResultPerson record);

    /**
     * 根据resultId获取报警对象人员姓名列表
     *
     * @param resultId resultId
     * @return List<String>
     */
    List<String> selectPersonNameByResultId(@Param("resultId") Integer resultId, @Param("personId") Integer personId);

    /**
     * 批量插入报警人员信息
     *
     * @param personList 人员列表
     */
    void batchInsert(@Param("personList") List<FimAlgResultPerson> personList);

    /**
     * 根据人员查找违规记录列表
     *
     * @param deptId
     * @param deviceId
     * @param personId
     * @param handleStatus
     * @param startTime
     * @param endTime
     * @param checkTypeList
     * @return
     */
    List<FimResultDTO> selectViolationList(@Param("deptId") Integer deptId,
                                           @Param("deviceId") Integer deviceId,
                                           @Param("personId") Integer personId,
                                           @Param("handleStatus") Integer handleStatus,
                                           @Param("startTime") Date startTime,
                                           @Param("endTime") Date endTime,
                                           @Param("checkTypeList") List<Integer> checkTypeList);

    /**
     * 根据检测结果查询人员
     *
     * @param resultId
     * @return
     */
    List<FimAlgResultPerson> selectPersonByResultId(@Param("resultId") Integer resultId);
}